﻿//*** Guidance generated code ***//
using System;
using System.Collections.Generic;
using System.Linq;

using ProjectBase.Core;
using ProjectBase.Core.Web;

using $prjsn$.Entity.Services;
using $safeprojectname$.Business.Services;

namespace $safeprojectname$.Providers
{
    public interface ISecurityProvider : IService
    {
        IEnumerable<string> GetApplicationRoles();

        IEnumerable<string> GetExpandedMenuNodes();

        IEnumerable<IControllerAccess> GetGrantedControllers();

        IEnumerable<ITVDataItem> GetGrantedMenuNodes();

        IEnumerable<string> GetRolesForUser();

        IEnumerable<string> GetRolesForUser(string username);

        bool HasRole(string roleName);

        void ChangeCurrentRole(string role);

        bool IsAuthenticationModeForms { get; }
        bool IsAuthenticationModeNone { get; }
        IMenuConfigProvider MenuConfigProvider { set; }
        User User { get; }
        IUserFacade UserFacade { set; }
    }
}